/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.banconacion.dao.base.mysql;

import com.banconacion.bean.UsuarioDTO;
import com.banconacion.dao.UsuarioDAO;
import com.banconacion.util.MySqlDataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author Ernesto
 */
public class MySqlUsuarioDAO implements UsuarioDAO {

    @Override
    public UsuarioDTO buscaUsuarioPorNick(String nick) throws Exception {
        UsuarioDTO usuarioDTO = null;

        // obtenemos la conexion de b.d.
        Connection cn = MySqlDataSource.obtenerConexion();

        try {

            String sql = "select codigoUsuario,nick,password"
                    + " from usuario where nick = ?";

            // preparamos la sentencia
            PreparedStatement pst = cn.prepareCall(sql);

            // asignamos valor a la interrogante
            pst.setString(1, nick);

            // ejecutamos la sentencia
            ResultSet rs = pst.executeQuery();

            if (rs.next()) {

                usuarioDTO = new UsuarioDTO();

                usuarioDTO.setCodigo(rs.getInt(1));
                usuarioDTO.setNick(rs.getString(2));
                usuarioDTO.setPassword(rs.getString(3));
            }


            cn.close();


        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        return usuarioDTO;
    }

    public UsuarioDTO login(String nick, String password) throws Exception {
        UsuarioDTO usuarioDTO = null;

        // obtenemos la conexion de b.d.
        Connection cn = MySqlDataSource.obtenerConexion();

        try {

            String sql = "select codigoUsuario,nick,password"
                    + " from usuario where nick = ?";

            String sentencia = "select codigoUsuario, nick, password, TipoUsuario_idTipoUsuario " + 
            "from Usuario where nick = ? and password = ?";
            
            // preparamos la sentencia
            PreparedStatement pst = cn.prepareCall(sentencia);

            // asignamos valor a la interrogante
            pst.setString(1, nick);
            pst.setString(2, password);

            // ejecutamos la sentencia
            ResultSet rs = pst.executeQuery();

            if (rs.next()) {

                usuarioDTO = new UsuarioDTO();

                usuarioDTO.setCodigo(rs.getInt(1));
                usuarioDTO.setNick(rs.getString(2));
                usuarioDTO.setPassword(rs.getString(3));
                usuarioDTO.setTipoUsuario(rs.getInt(4));
            }


            cn.close();


        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        return usuarioDTO;
    }
}
